package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 优惠活动对象 shop_activity
 * 
 * @author ruoyi
 * @date 2025-10-20
 */
public class ShopActivity extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 活动唯一ID */
    private Long activityId;

    /** 关联店铺ID（0=平台活动） */
    @Excel(name = "关联店铺ID", readConverterExp = "0==平台活动")
    private Long storeId;

    /** 活动名称（如"满50减10"） */
    @Excel(name = "活动名称", readConverterExp = "如='满50减10'")
    private String activityName;

    /** 活动类型（0-满减，1-折扣，2-赠品） */
    @Excel(name = "活动类型", readConverterExp = "0=-满减，1-折扣，2-赠品")
    private Integer activityType;

    /** 活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 活动结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 活动规则（如"满50元可用"） */
    @Excel(name = "活动规则", readConverterExp = "如='满50元可用'")
    private String ruleDesc;

    /** 是否生效（0-否，1-是） */
    @Excel(name = "是否生效", readConverterExp = "0=-否，1-是")
    private Integer isActive;

    public void setActivityId(Long activityId) 
    {
        this.activityId = activityId;
    }

    public Long getActivityId() 
    {
        return activityId;
    }

    public void setStoreId(Long storeId) 
    {
        this.storeId = storeId;
    }

    public Long getStoreId() 
    {
        return storeId;
    }

    public void setActivityName(String activityName) 
    {
        this.activityName = activityName;
    }

    public String getActivityName() 
    {
        return activityName;
    }

    public void setActivityType(Integer activityType) 
    {
        this.activityType = activityType;
    }

    public Integer getActivityType() 
    {
        return activityType;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setRuleDesc(String ruleDesc) 
    {
        this.ruleDesc = ruleDesc;
    }

    public String getRuleDesc() 
    {
        return ruleDesc;
    }

    public void setIsActive(Integer isActive) 
    {
        this.isActive = isActive;
    }

    public Integer getIsActive() 
    {
        return isActive;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("activityId", getActivityId())
            .append("storeId", getStoreId())
            .append("activityName", getActivityName())
            .append("activityType", getActivityType())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("ruleDesc", getRuleDesc())
            .append("isActive", getIsActive())
            .toString();
    }
}
